//#include <iostream>
//#include <string>
//using namespace std;
//
//int main()
//{
//	bool hash[200] = { 0 };
//	string s1, s2;
//	string str;
//	getline(cin, s1);
//	getline(cin, s2);
//	for (int i = 0; i < s2.size(); i++)
//	{
//		hash[s2[i]] = true;
//	}
//
//	for (int i = 0; i < s1.size(); i++)
//	{
//		if (!hash[s1[i]])
//		{
//			str += s1[i];
//		}
//	}
//
//	cout << str << endl;
//
//	return 0;
//}

//#include <iostream>
//#include <list>
//
//using namespace std;
//
//struct ListNode 
//{
//	int val;
//	struct ListNode* next;
//	ListNode(int x) 
//		:val(x), next(NULL) 
//	{}
//};
//
//class Solution
//{
//public:
//    ListNode* FindFirstCommonNode(ListNode* pHead1, ListNode* pHead2)
//    {
//		list<int> l1, l2;
//		ListNode* p1 = pHead1;
//		while (p1)
//		{
//			l1.push_back(p1->val);
//			p1 = p1->next;
//		}
//
//		ListNode* p2 = pHead2;
//		while (p2)
//		{
//			l2.push_back(p2->val);
//			p2 = p2->next;
//		}
//
//		int x = l1.size() - l2.size();
//		x = abs(x);
//		if (l1.size() > l2.size())
//		{
//			while (x--)
//			{
//				pHead1 = pHead1->next;
//			}
//		}
//		else
//		{
//			while (x--)
//			{
//				pHead2 = pHead2->next;
//			}
//		}
//
//		while (pHead1 && pHead2)
//		{
//			if (pHead1 == pHead2)
//			{
//				return pHead1;
//			}
//			pHead1 = pHead1->next;
//			pHead2 = pHead2->next;
//		}
//
//		return nullptr;
//    }
//};

//#include "mymap.h"
//
//int main()
//{
//	return 0;
//}